{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "16a0c1b9-7679-48a9-bd98-67caf2123963",
   "metadata": {
    "tags": []
   },
   "source": [
    "# Hotspots\n",
    "\n",
    "Hotspots California map: \n",
    "- Wildifre-wildifreSmokePM2.5, \n",
    "- Heat-wildfire,\n",
    "- Heat-PM2.5, \n",
    "- Wildifre-Heat-SmokePM2.5P"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "id": "2ab11051-f28d-48be-8867-bd37d5046b9c",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The autoreload extension is already loaded. To reload it, use:\n",
      "  %reload_ext autoreload\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import geopandas as gpd\n",
    "import seaborn as sns   \n",
    "import plotting\n",
    "hspts = plotting.get_hotspot_list()\n",
    "%load_ext autoreload\n",
    "%autoreload 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "bcb0e171",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "df = pd.read_parquet(\"outputs/d2-events-2d5-230929.parquet\") \n",
    "gdf = gpd.read_file('data/WesternUSCensusTract/CensusTract2020_WesternUS.shp')\n",
    "gdf = gdf[['FIPS', 'POPULATION', 'STATE_ABBR']]\n",
    "df = gdf.merge(df.reset_index(), left_on=\"FIPS\", right_on=\"GEOID\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "019ae36c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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D2bOnIl9+/bB19dX6nf27Nk4efIkdu7cCQsLCwwdOhQAMH78eNy8eRM7d+7E3bt3MX78+LpOEhER0WOt1nv6P/30EwoLCxEWFiZdQFciKysLW7ZswYgRI2rUlr29PVasWKHV7bfffquwXysrKyxZsqRcd1NTUyxYsKCG0RMRERmuWhf9vn374sMPP0RcXJzWQ3WA4gI8e/ZsnQVHREREulProm9ra4uNGzfi1KlTGDZsWLnvG9JtDkRERPR/6nQhn6mpKYYNG4b8/HxkZWVJt9EIIfDDDz9Iz8UnIiKihqPOV+9//fXX2L59e7k9e5lMxqJPRETUANW56O/btw/79u2Dq6ur1u0Ehw8f1kVcREREpGN1vmVv1KhRaNGiRbn7B3v27FnvoIiIiEj36rynb2FhgQULFpQr8uHh4QgMDKx3YERERKRbdS76MTExMDc3x507d6Q35Wk0GqSkpOgsODIcRWoNTOR6f+kjEdFjrc5Ff+rUqejcubPW4X0hBG7cuKGTwMiwmMiNMDVIN29lszE3waox7jqIiojo8VLnom9lZYXk5GStbmlpaQgPD8eTTz5Z78DI8CgL1VAW1b/oNyniEQMioorUuegPGjQIMplM64U5MpkM9vb2mDx5sk6CIyIiIt2pc9H39/fHmDFjtLr997//RadOneodFBEREelenY+Dli34APD//t//w4cfflivgIiIiOjhqPOe/vr167U+azQaREVFlXsJDxERETUMdS76R44cgbu7u3S7nkwmQ5cuXfDpp5/qLDgiIiLSnToX/S+//BJubm66jIWIiIgeojoXfTc3N1y5cgXfffcdkpKS0KFDB7zxxhu8kI+IiKiBqvOFfIcPH8a4ceOQmpoKJycnaDQaLF68GL/++qsu4yMiIiIdqfOe/g8//IDjx4/DwcFBq/sXX3yBwYMH1zswIiIi0q067+l37969XMEHgOzs7HoFRERERA9Hnff0CwoKcP78eTz99NNQqVS4efMmDh48iPT0dF3GR0RERDpSrxfuLF68GD4+PtKjeD09PbF8+XKdBUdERES6U6uiHxQUBLVaDWtra7zwwgtYtWoVFi5ciISEBKjVatjZ2cHW1vZhxUpERET1UKtz+oWFhYiNjYWXlxfMzMwAALa2tujevTt69OiBy5cvIz4+/mHESURERPVUq6KfkpKCTz75BKamphV+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",
      "text/plain": [
       "<Figure size 510x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.rcParams[\"font.family\"] = \"Times New Roman\"\n",
    "axs = plt.subplots(figsize=(5.1, 3))\n",
    "axs = sns.histplot(x=gdf[gdf[\"POPULATION\"]<10500][\"POPULATION\"], bins=20)\n",
    "axs.set_xlabel(\"Population per census tract\", fontsize=10)\n",
    "axs.set_ylabel(\"Count\", fontsize=10)\n",
    "axs.set_title(\"Distribution of total population per census tract in the Western US\", fontsize=12)\n",
    "plt.tight_layout()\n",
    "# plt.savefig(\"figures/population_distribution.png\", dpi=300)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2a6788b6",
   "metadata": {},
   "source": [
    "## Total counts (tracts, days)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "a647a3ef",
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df[df.STATE_ABBR!='TX']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "0180d3ea",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "18107"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "total_census_tracts = len(df.GEOID.unique())\n",
    "total_census_tracts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "b1f819da",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5479.0"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "total_days = len(df)\n",
    "total_days = total_days / total_census_tracts\n",
    "total_days"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "a14fd0ab",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "total_years = 15"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "d4135e08-e0dd-4340-878c-388f9e7e83df",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "414\n",
      "11\n",
      "76334073\n"
     ]
    }
   ],
   "source": [
    "df[\"COUNTY\"] = df[\"GEOID\"].apply(lambda x: x[:5])\n",
    "print(df[\"COUNTY\"].nunique())\n",
    "df[\"STATE\"] = df[\"GEOID\"].apply(lambda x: x[:2])\n",
    "print(df.STATE.nunique())\n",
    "print(gdf.POPULATION.sum())\n",
    "\n",
    "#df.STATE_ABBR.unique()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4bc5d667",
   "metadata": {},
   "source": [
    "## Get Exposure days per census tract per year"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "748e32b1",
   "metadata": {},
   "outputs": [],
   "source": [
    "hspts = ['wfday', 'heatday', 'smoke_pm_non_zero', 'smoke_pm_gt_five',\n",
    "       'hw', '_hws', 'hs', 'hws', 'ws', 'hs5', 'hws5', 'ws5', 'heatday_2d',\n",
    "       'smoke_pm_non_zero_2d', 'wfday_2d', '_hws_2d', 'hs_2d', 'hws_2d',\n",
    "       'ws_2d', 'hw_2d', 'smoke_pm_gt_five_2d', 'hs_2d_5', 'ws_2d_5',\n",
    "       'hws_2d_5']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "ae2e1efe",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "STATE_ABBR\n",
       "AZ     9670435\n",
       "CA    49836984\n",
       "CO     7928113\n",
       "ID     2498424\n",
       "MT     1747801\n",
       "NM     3353148\n",
       "NV     4268141\n",
       "OR     5429689\n",
       "UT     3922964\n",
       "WA     9675914\n",
       "WY      876640\n",
       "Name: FIPS, dtype: int64"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby('STATE_ABBR')[\"FIPS\"].count()\n",
    "\n",
    "# Conclusion: The issue of finding an average exposure per census tract is that the states \n",
    "# in the western US has different number of census tracts. For instance, California has 9096 census tracts, while\n",
    "# states like Idiho and Montana have less than 500 census tracts."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "3ab62cb7",
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df[df['STATE_ABBR'] != 'TX']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "ff3fa74d",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/lc/q1l1y0k176b0h_m5yz0s_r5w0000gn/T/ipykernel_2261/3670173299.py:23: FutureWarning: DataFrame.applymap has been deprecated. Use DataFrame.map instead.\n",
      "  exposure_person_day = exposure_person_day.applymap(\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>value</th>\n",
       "      <th>total_exposure_days</th>\n",
       "      <th>total_exposure_days_per_year</th>\n",
       "      <th>total_exposure_days_per_ct</th>\n",
       "      <th>total_exposure_person_days</th>\n",
       "      <th>exposure_person_day_per_year</th>\n",
       "      <th>avg_exposure_person_days_per_ct</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>wfday</td>\n",
       "      <td>115,632</td>\n",
       "      <td>7,708</td>\n",
       "      <td>0</td>\n",
       "      <td>384,251,376</td>\n",
       "      <td>25,616,758</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>heatday</td>\n",
       "      <td>2,005,773</td>\n",
       "      <td>133,718</td>\n",
       "      <td>0</td>\n",
       "      <td>8,537,373,785</td>\n",
       "      <td>569,158,252</td>\n",
       "      <td>86</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>smoke_pm_non_zero</td>\n",
       "      <td>7,223,911</td>\n",
       "      <td>481,594</td>\n",
       "      <td>0</td>\n",
       "      <td>30,063,223,402</td>\n",
       "      <td>2,004,214,893</td>\n",
       "      <td>303</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>ws</td>\n",
       "      <td>43,692</td>\n",
       "      <td>2,912</td>\n",
       "      <td>0</td>\n",
       "      <td>136,525,088</td>\n",
       "      <td>9,101,672</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>hw</td>\n",
       "      <td>3,133</td>\n",
       "      <td>208</td>\n",
       "      <td>0</td>\n",
       "      <td>10,579,329</td>\n",
       "      <td>705,288</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>hs</td>\n",
       "      <td>573,221</td>\n",
       "      <td>38,214</td>\n",
       "      <td>0</td>\n",
       "      <td>2,414,815,138</td>\n",
       "      <td>160,987,675</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>hws</td>\n",
       "      <td>2,313</td>\n",
       "      <td>154</td>\n",
       "      <td>0</td>\n",
       "      <td>7,744,153</td>\n",
       "      <td>516,276</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>_hws</td>\n",
       "      <td>8,727,583</td>\n",
       "      <td>581,838</td>\n",
       "      <td>0</td>\n",
       "      <td>36,430,673,161</td>\n",
       "      <td>2,428,711,544</td>\n",
       "      <td>367</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               value total_exposure_days total_exposure_days_per_year  \\\n",
       "0              wfday             115,632                        7,708   \n",
       "1            heatday           2,005,773                      133,718   \n",
       "2  smoke_pm_non_zero           7,223,911                      481,594   \n",
       "8                 ws              43,692                        2,912   \n",
       "4                 hw               3,133                          208   \n",
       "6                 hs             573,221                       38,214   \n",
       "7                hws               2,313                          154   \n",
       "5               _hws           8,727,583                      581,838   \n",
       "\n",
       "  total_exposure_days_per_ct total_exposure_person_days  \\\n",
       "0                          0                384,251,376   \n",
       "1                          0              8,537,373,785   \n",
       "2                          0             30,063,223,402   \n",
       "8                          0                136,525,088   \n",
       "4                          0                 10,579,329   \n",
       "6                          0              2,414,815,138   \n",
       "7                          0                  7,744,153   \n",
       "5                          0             36,430,673,161   \n",
       "\n",
       "  exposure_person_day_per_year avg_exposure_person_days_per_ct  \n",
       "0                   25,616,758                               3  \n",
       "1                  569,158,252                              86  \n",
       "2                2,004,214,893                             303  \n",
       "8                    9,101,672                               1  \n",
       "4                      705,288                               0  \n",
       "6                  160,987,675                              24  \n",
       "7                      516,276                               0  \n",
       "5                2,428,711,544                             367  "
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "total_years = 15\n",
    "\n",
    "def compute_exposure(df, hspts):\n",
    "    \"\"\"Compute exposure based on given columns.\"\"\"\n",
    "    # Calculate exposure days multiplied by ct population for each column\n",
    "    exposure = df[hspts].multiply(df[\"POPULATION\"], axis=0)\n",
    "    \n",
    "    # Aggregate exposure information\n",
    "    exposure_agg = {\n",
    "        \"total_exposure_person_days\": exposure.sum(),\n",
    "        \"avg_exposure_person_days_per_ct\": exposure.mean(),\n",
    "        \"exposure_person_day_per_year\": exposure.sum() / total_years,\n",
    "        \"total_exposure_days\": df[hspts].sum(),\n",
    "        \"total_exposure_days_per_year\": df[hspts].sum() / total_years,\n",
    "        \"total_exposure_days_per_ct\": df[hspts].mean()\n",
    "    }\n",
    "    return pd.DataFrame(exposure_agg)\n",
    "\n",
    "exposure_person_day = compute_exposure(df, hspts).reset_index()\n",
    "exposure_person_day.columns = [\"value\"] + list(exposure_person_day.columns[1:])\n",
    "exposure_person_day = exposure_person_day.astype(int, errors='ignore')\n",
    "\n",
    "exposure_person_day = exposure_person_day.applymap(\n",
    "    lambda x: \"{:,.0f}\".format(x) if isinstance(x, (int, float)) else x)\n",
    "exposure_person_day[['value', \n",
    "        \"total_exposure_days\", \"total_exposure_days_per_year\",\"total_exposure_days_per_ct\",\n",
    "       'total_exposure_person_days', 'exposure_person_day_per_year',\n",
    "       'avg_exposure_person_days_per_ct',\n",
    "       ]].loc[[0,1,2,8,4,6,7,5]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "2fbba0b2",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/lc/q1l1y0k176b0h_m5yz0s_r5w0000gn/T/ipykernel_2261/364580950.py:1: FutureWarning: DataFrame.applymap has been deprecated. Use DataFrame.map instead.\n",
      "  exposure_person_day = exposure_person_day.applymap(lambda x: \"{:,.0f}\".format(x) if isinstance(x, (int, float)) else x)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>value</th>\n",
       "      <th>total_exposure_person_days</th>\n",
       "      <th>avg_exposure_person_days_per_ct</th>\n",
       "      <th>exposure_person_day_per_year</th>\n",
       "      <th>total_exposure_days</th>\n",
       "      <th>total_exposure_days_per_year</th>\n",
       "      <th>total_exposure_days_per_ct</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>wfday</td>\n",
       "      <td>384,251,376</td>\n",
       "      <td>3</td>\n",
       "      <td>25,616,758</td>\n",
       "      <td>115,632</td>\n",
       "      <td>7,708</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>heatday</td>\n",
       "      <td>8,537,373,785</td>\n",
       "      <td>86</td>\n",
       "      <td>569,158,252</td>\n",
       "      <td>2,005,773</td>\n",
       "      <td>133,718</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>smoke_pm_non_zero</td>\n",
       "      <td>30,063,223,402</td>\n",
       "      <td>303</td>\n",
       "      <td>2,004,214,893</td>\n",
       "      <td>7,223,911</td>\n",
       "      <td>481,594</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>smoke_pm_gt_five</td>\n",
       "      <td>10,078,231,179</td>\n",
       "      <td>101</td>\n",
       "      <td>671,882,078</td>\n",
       "      <td>2,419,380</td>\n",
       "      <td>161,292</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>hw</td>\n",
       "      <td>10,579,329</td>\n",
       "      <td>0</td>\n",
       "      <td>705,288</td>\n",
       "      <td>3,133</td>\n",
       "      <td>208</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>_hws</td>\n",
       "      <td>36,430,673,161</td>\n",
       "      <td>367</td>\n",
       "      <td>2,428,711,544</td>\n",
       "      <td>8,727,583</td>\n",
       "      <td>581,838</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>hs</td>\n",
       "      <td>2,414,815,138</td>\n",
       "      <td>24</td>\n",
       "      <td>160,987,675</td>\n",
       "      <td>573,221</td>\n",
       "      <td>38,214</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>hws</td>\n",
       "      <td>7,744,153</td>\n",
       "      <td>0</td>\n",
       "      <td>516,276</td>\n",
       "      <td>2,313</td>\n",
       "      <td>154</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>ws</td>\n",
       "      <td>136,525,088</td>\n",
       "      <td>1</td>\n",
       "      <td>9,101,672</td>\n",
       "      <td>43,692</td>\n",
       "      <td>2,912</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>hs5</td>\n",
       "      <td>925,211,619</td>\n",
       "      <td>9</td>\n",
       "      <td>61,680,774</td>\n",
       "      <td>219,943</td>\n",
       "      <td>14,662</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>hws5</td>\n",
       "      <td>4,341,827</td>\n",
       "      <td>0</td>\n",
       "      <td>289,455</td>\n",
       "      <td>1,320</td>\n",
       "      <td>88</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>ws5</td>\n",
       "      <td>58,618,684</td>\n",
       "      <td>0</td>\n",
       "      <td>3,907,912</td>\n",
       "      <td>19,280</td>\n",
       "      <td>1,285</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>heatday_2d</td>\n",
       "      <td>12,637,141,559</td>\n",
       "      <td>127</td>\n",
       "      <td>842,476,103</td>\n",
       "      <td>2,968,110</td>\n",
       "      <td>197,874</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>smoke_pm_non_zero_2d</td>\n",
       "      <td>43,213,912,313</td>\n",
       "      <td>435</td>\n",
       "      <td>2,880,927,487</td>\n",
       "      <td>10,364,584</td>\n",
       "      <td>690,972</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>wfday_2d</td>\n",
       "      <td>666,341,221</td>\n",
       "      <td>6</td>\n",
       "      <td>44,422,748</td>\n",
       "      <td>197,017</td>\n",
       "      <td>13,134</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>_hws_2d</td>\n",
       "      <td>51,553,517,009</td>\n",
       "      <td>519</td>\n",
       "      <td>3,436,901,133</td>\n",
       "      <td>12,334,458</td>\n",
       "      <td>822,297</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>hs_2d</td>\n",
       "      <td>4,683,715,553</td>\n",
       "      <td>47</td>\n",
       "      <td>312,247,703</td>\n",
       "      <td>1,108,988</td>\n",
       "      <td>73,932</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>hws_2d</td>\n",
       "      <td>18,892,293</td>\n",
       "      <td>0</td>\n",
       "      <td>1,259,486</td>\n",
       "      <td>5,482</td>\n",
       "      <td>365</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>ws_2d</td>\n",
       "      <td>274,845,401</td>\n",
       "      <td>2</td>\n",
       "      <td>18,323,026</td>\n",
       "      <td>84,732</td>\n",
       "      <td>5,648</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>hw_2d</td>\n",
       "      <td>24,209,423</td>\n",
       "      <td>0</td>\n",
       "      <td>1,613,961</td>\n",
       "      <td>7,015</td>\n",
       "      <td>467</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>smoke_pm_gt_five_2d</td>\n",
       "      <td>13,858,572,467</td>\n",
       "      <td>139</td>\n",
       "      <td>923,904,831</td>\n",
       "      <td>3,321,288</td>\n",
       "      <td>221,419</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>hs_2d_5</td>\n",
       "      <td>1,798,378,559</td>\n",
       "      <td>18</td>\n",
       "      <td>119,891,903</td>\n",
       "      <td>427,441</td>\n",
       "      <td>28,496</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>ws_2d_5</td>\n",
       "      <td>98,783,723</td>\n",
       "      <td>0</td>\n",
       "      <td>6,585,581</td>\n",
       "      <td>31,500</td>\n",
       "      <td>2,100</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>hws_2d_5</td>\n",
       "      <td>10,121,495</td>\n",
       "      <td>0</td>\n",
       "      <td>674,766</td>\n",
       "      <td>3,020</td>\n",
       "      <td>201</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   value total_exposure_person_days  \\\n",
       "0                  wfday                384,251,376   \n",
       "1                heatday              8,537,373,785   \n",
       "2      smoke_pm_non_zero             30,063,223,402   \n",
       "3       smoke_pm_gt_five             10,078,231,179   \n",
       "4                     hw                 10,579,329   \n",
       "5                   _hws             36,430,673,161   \n",
       "6                     hs              2,414,815,138   \n",
       "7                    hws                  7,744,153   \n",
       "8                     ws                136,525,088   \n",
       "9                    hs5                925,211,619   \n",
       "10                  hws5                  4,341,827   \n",
       "11                   ws5                 58,618,684   \n",
       "12            heatday_2d             12,637,141,559   \n",
       "13  smoke_pm_non_zero_2d             43,213,912,313   \n",
       "14              wfday_2d                666,341,221   \n",
       "15               _hws_2d             51,553,517,009   \n",
       "16                 hs_2d              4,683,715,553   \n",
       "17                hws_2d                 18,892,293   \n",
       "18                 ws_2d                274,845,401   \n",
       "19                 hw_2d                 24,209,423   \n",
       "20   smoke_pm_gt_five_2d             13,858,572,467   \n",
       "21               hs_2d_5              1,798,378,559   \n",
       "22               ws_2d_5                 98,783,723   \n",
       "23              hws_2d_5                 10,121,495   \n",
       "\n",
       "   avg_exposure_person_days_per_ct exposure_person_day_per_year  \\\n",
       "0                                3                   25,616,758   \n",
       "1                               86                  569,158,252   \n",
       "2                              303                2,004,214,893   \n",
       "3                              101                  671,882,078   \n",
       "4                                0                      705,288   \n",
       "5                              367                2,428,711,544   \n",
       "6                               24                  160,987,675   \n",
       "7                                0                      516,276   \n",
       "8                                1                    9,101,672   \n",
       "9                                9                   61,680,774   \n",
       "10                               0                      289,455   \n",
       "11                               0                    3,907,912   \n",
       "12                             127                  842,476,103   \n",
       "13                             435                2,880,927,487   \n",
       "14                               6                   44,422,748   \n",
       "15                             519                3,436,901,133   \n",
       "16                              47                  312,247,703   \n",
       "17                               0                    1,259,486   \n",
       "18                               2                   18,323,026   \n",
       "19                               0                    1,613,961   \n",
       "20                             139                  923,904,831   \n",
       "21                              18                  119,891,903   \n",
       "22                               0                    6,585,581   \n",
       "23                               0                      674,766   \n",
       "\n",
       "   total_exposure_days total_exposure_days_per_year total_exposure_days_per_ct  \n",
       "0              115,632                        7,708                          0  \n",
       "1            2,005,773                      133,718                          0  \n",
       "2            7,223,911                      481,594                          0  \n",
       "3            2,419,380                      161,292                          0  \n",
       "4                3,133                          208                          0  \n",
       "5            8,727,583                      581,838                          0  \n",
       "6              573,221                       38,214                          0  \n",
       "7                2,313                          154                          0  \n",
       "8               43,692                        2,912                          0  \n",
       "9              219,943                       14,662                          0  \n",
       "10               1,320                           88                          0  \n",
       "11              19,280                        1,285                          0  \n",
       "12           2,968,110                      197,874                          0  \n",
       "13          10,364,584                      690,972                          0  \n",
       "14             197,017                       13,134                          0  \n",
       "15          12,334,458                      822,297                          0  \n",
       "16           1,108,988                       73,932                          0  \n",
       "17               5,482                          365                          0  \n",
       "18              84,732                        5,648                          0  \n",
       "19               7,015                          467                          0  \n",
       "20           3,321,288                      221,419                          0  \n",
       "21             427,441                       28,496                          0  \n",
       "22              31,500                        2,100                          0  \n",
       "23               3,020                          201                          0  "
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "exposure_person_day = exposure_person_day.applymap(lambda x: \"{:,.0f}\".format(x) if isinstance(x, (int, float)) else x)\n",
    "exposure_person_day"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "5da81aca",
   "metadata": {},
   "outputs": [],
   "source": [
    "df_epy = exposure_person_day[[\"value\",\"total_exposure_days\", \"total_exposure_days_per_year\", \"total_exposure_person_days\", \"exposure_person_day_per_year\"]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "id": "c630e780",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5.468194654291524e-05"
      ]
     },
     "execution_count": 141,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "36431528133/(8728005*76334073)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "26fcbecb",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "| value                | total_exposure_days   | total_exposure_days_per_year   | total_exposure_person_days   | exposure_person_day_per_year   |\n",
      "|:---------------------|:----------------------|:-------------------------------|:-----------------------------|:-------------------------------|\n",
      "| wfday                | 115,632               | 7,708                          | 384,251,376                  | 25,616,758                     |\n",
      "| heatday              | 2,005,773             | 133,718                        | 8,537,373,785                | 569,158,252                    |\n",
      "| smoke_pm_non_zero    | 7,223,911             | 481,594                        | 30,063,223,402               | 2,004,214,893                  |\n",
      "| smoke_pm_gt_five     | 2,419,380             | 161,292                        | 10,078,231,179               | 671,882,078                    |\n",
      "| hw                   | 3,133                 | 208                            | 10,579,329                   | 705,288                        |\n",
      "| _hws                 | 8,727,583             | 581,838                        | 36,430,673,161               | 2,428,711,544                  |\n",
      "| hs                   | 573,221               | 38,214                         | 2,414,815,138                | 160,987,675                    |\n",
      "| hws                  | 2,313                 | 154                            | 7,744,153                    | 516,276                        |\n",
      "| ws                   | 43,692                | 2,912                          | 136,525,088                  | 9,101,672                      |\n",
      "| hs5                  | 219,943               | 14,662                         | 925,211,619                  | 61,680,774                     |\n",
      "| hws5                 | 1,320                 | 88                             | 4,341,827                    | 289,455                        |\n",
      "| ws5                  | 19,280                | 1,285                          | 58,618,684                   | 3,907,912                      |\n",
      "| heatday_2d           | 2,968,110             | 197,874                        | 12,637,141,559               | 842,476,103                    |\n",
      "| smoke_pm_non_zero_2d | 10,364,584            | 690,972                        | 43,213,912,313               | 2,880,927,487                  |\n",
      "| wfday_2d             | 197,017               | 13,134                         | 666,341,221                  | 44,422,748                     |\n",
      "| _hws_2d              | 12,334,458            | 822,297                        | 51,553,517,009               | 3,436,901,133                  |\n",
      "| hs_2d                | 1,108,988             | 73,932                         | 4,683,715,553                | 312,247,703                    |\n",
      "| hws_2d               | 5,482                 | 365                            | 18,892,293                   | 1,259,486                      |\n",
      "| ws_2d                | 84,732                | 5,648                          | 274,845,401                  | 18,323,026                     |\n",
      "| hw_2d                | 7,015                 | 467                            | 24,209,423                   | 1,613,961                      |\n",
      "| smoke_pm_gt_five_2d  | 3,321,288             | 221,419                        | 13,858,572,467               | 923,904,831                    |\n",
      "| hs_2d_5              | 427,441               | 28,496                         | 1,798,378,559                | 119,891,903                    |\n",
      "| ws_2d_5              | 31,500                | 2,100                          | 98,783,723                   | 6,585,581                      |\n",
      "| hws_2d_5             | 3,020                 | 201                            | 10,121,495                   | 674,766                        |\n"
     ]
    }
   ],
   "source": [
    "from tabulate import tabulate\n",
    "# for col in merged_df.select_dtypes(include=['float64']).columns:\n",
    "#     merged_df[col] = merged_df[col].apply(lambda x: '{:.2f}'.format(x))\n",
    "\n",
    "markdown_table = tabulate(df_epy, headers='keys', tablefmt='pipe', showindex=False)\n",
    "print(markdown_table)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5409f2b0-d3ce-4452-8a5a-82b0c2b1d95a",
   "metadata": {},
   "source": [
    "| value                |   total_exposure_days |   total_exposure_days_per_year |   total_exposure_person_days |   exposure_person_day_per_year |\n",
    "|:---------------------|----------------------:|-------------------------------:|-----------------------------:|-------------------------------:|\n",
    "| wfday                |                115632 |                        7708.8  |                    384251376 |                         256.17 |\n",
    "| heatday              |               2005979 |                      133732    |                   8537791141 |                        5691.86 |\n",
    "| smoke_pm_non_zero    |               7224168 |                      481611    |                  30063744084 |                       20042.5  |\n",
    "| smoke_pm_gt_five     |               2419449 |                      161297    |                  10078370973 |                        6718.91 |\n",
    "| hw                   |                  3133 |                         208.87 |                     10579329 |                           7.05 |\n",
    "| _hws                 |               8728005 |                      581867    |                  36431528133 |                       24287.7  |\n",
    "| hs                   |                573262 |                       38217.5  |                   2414898204 |                        1609.93 |\n",
    "| hws                  |                  2313 |                         154.2  |                      7744153 |                           5.16 |\n",
    "| ws                   |                 43692 |                        2912.8  |                    136525088 |                          91.02 |\n",
    "| hs5                  |                219955 |                       14663.7  |                    925235931 |                         616.82 |\n",
    "| hws5                 |                  1320 |                          88    |                      4341827 |                           2.89 |\n",
    "| ws5                  |                 19280 |                        1285.33 |                     58618684 |                          39.08 |\n",
    "| heatday_2d           |               2968398 |                      197893    |                  12637725047 |                        8425.15 |\n",
    "| smoke_pm_non_zero_2d |              10364963 |                      690998    |                  43214680167 |                       28809.8  |\n",
    "| wfday_2d             |                197017 |                       13134.5  |                    666341221 |                         444.23 |\n",
    "| _hws_2d              |              12335048 |                      822337    |                  51554712349 |                       34369.8  |\n",
    "| hs_2d                |               1109065 |                       73937.7  |                   4683871555 |                        3122.58 |\n",
    "| hws_2d               |                  5482 |                         365.47 |                     18892293 |                          12.59 |\n",
    "| ws_2d                |                 84732 |                        5648.8  |                    274845401 |                         183.23 |"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ee662d37",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "d81c1a88",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "418223285513"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# total population\n",
    "\n",
    "df[\"POPULATION\"].sum() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "5ef658b8",
   "metadata": {},
   "outputs": [],
   "source": [
    "df_ecy = plotting.get_hotspopt_dict()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "e9208756",
   "metadata": {},
   "outputs": [],
   "source": [
    "df_ecy = pd.DataFrame(df_ecy).transpose()\n",
    "df_ecy.reset_index(inplace=True)\n",
    "df_ecy.rename(columns={'index': 'value'}, inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "b38dc91d",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>value</th>\n",
       "      <th>title</th>\n",
       "      <th>title_map</th>\n",
       "      <th>total_exposure_days</th>\n",
       "      <th>total_exposure_days_per_year</th>\n",
       "      <th>total_exposure_person_days</th>\n",
       "      <th>exposure_person_day_per_year</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>wfday</td>\n",
       "      <td>wildfire</td>\n",
       "      <td>Total days of wildfire</td>\n",
       "      <td>115,632</td>\n",
       "      <td>7,708</td>\n",
       "      <td>384,251,376</td>\n",
       "      <td>25,616,758</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>heatday</td>\n",
       "      <td>heat</td>\n",
       "      <td>Total days of heat</td>\n",
       "      <td>2,005,773</td>\n",
       "      <td>133,718</td>\n",
       "      <td>8,537,373,785</td>\n",
       "      <td>569,158,252</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>smoke_pm_non_zero</td>\n",
       "      <td>smoke_pm_non_zero</td>\n",
       "      <td>Total days of smoke $PM_{2.5}$</td>\n",
       "      <td>7,223,911</td>\n",
       "      <td>481,594</td>\n",
       "      <td>30,063,223,402</td>\n",
       "      <td>2,004,214,893</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>smoke_pm_gt_five</td>\n",
       "      <td>smoke_pm_gt_five</td>\n",
       "      <td>Total days of wildfire smoke (over &gt;5μg/$m^3$)</td>\n",
       "      <td>2,419,380</td>\n",
       "      <td>161,292</td>\n",
       "      <td>10,078,231,179</td>\n",
       "      <td>671,882,078</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>hws</td>\n",
       "      <td>heat_wildfire_smoke_pollution_non_zero</td>\n",
       "      <td>Total days of heat, wildfire and smoke $PM_{2....</td>\n",
       "      <td>2,313</td>\n",
       "      <td>154</td>\n",
       "      <td>7,744,153</td>\n",
       "      <td>516,276</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>hs</td>\n",
       "      <td>heat_smoke_pollution_non_zero</td>\n",
       "      <td>Total days of heat and smoke $PM_{2.5}$ concur...</td>\n",
       "      <td>573,221</td>\n",
       "      <td>38,214</td>\n",
       "      <td>2,414,815,138</td>\n",
       "      <td>160,987,675</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>hw</td>\n",
       "      <td>heat_wildfire</td>\n",
       "      <td>Total days of heat and wildfire concurrence</td>\n",
       "      <td>3,133</td>\n",
       "      <td>208</td>\n",
       "      <td>10,579,329</td>\n",
       "      <td>705,288</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>ws</td>\n",
       "      <td>wildfire_smoke_pollution_non_zero</td>\n",
       "      <td>Total days of wildfire &amp; smoke $PM_{2.5}$</td>\n",
       "      <td>43,692</td>\n",
       "      <td>2,912</td>\n",
       "      <td>136,525,088</td>\n",
       "      <td>9,101,672</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>_hws</td>\n",
       "      <td>heat_or_wildfire_or_smoke_pollution</td>\n",
       "      <td>Total days of heat or wildfire or smoke $PM_{2...</td>\n",
       "      <td>8,727,583</td>\n",
       "      <td>581,838</td>\n",
       "      <td>36,430,673,161</td>\n",
       "      <td>2,428,711,544</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>hs5</td>\n",
       "      <td>heat_smoke_pollution_over_five</td>\n",
       "      <td>Total days of heat and smoke $PM_{2.5}$ (over ...</td>\n",
       "      <td>219,943</td>\n",
       "      <td>14,662</td>\n",
       "      <td>925,211,619</td>\n",
       "      <td>61,680,774</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>hws5</td>\n",
       "      <td>heat_wildfire &amp; smoke_pollution_over_five</td>\n",
       "      <td>Total days of heat, wildfire and smoke $PM_{2....</td>\n",
       "      <td>1,320</td>\n",
       "      <td>88</td>\n",
       "      <td>4,341,827</td>\n",
       "      <td>289,455</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>ws5</td>\n",
       "      <td>wildfire_smoke_pollution_over_five</td>\n",
       "      <td>Total days of wildfire and smoke $PM_{2.5}$ (o...</td>\n",
       "      <td>19,280</td>\n",
       "      <td>1,285</td>\n",
       "      <td>58,618,684</td>\n",
       "      <td>3,907,912</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>wfday_2d</td>\n",
       "      <td>wildfire_2D</td>\n",
       "      <td>Total days of wildfire (2D)</td>\n",
       "      <td>197,017</td>\n",
       "      <td>13,134</td>\n",
       "      <td>666,341,221</td>\n",
       "      <td>44,422,748</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>smoke_pm_non_zero_2d</td>\n",
       "      <td>smoke_pm_non_zero_2D</td>\n",
       "      <td>Total days of smoke $PM_{2.5}$ (non zero) (2D)</td>\n",
       "      <td>10,364,584</td>\n",
       "      <td>690,972</td>\n",
       "      <td>43,213,912,313</td>\n",
       "      <td>2,880,927,487</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>heatday_2d</td>\n",
       "      <td>heat_2D</td>\n",
       "      <td>Total days of heat (2D)</td>\n",
       "      <td>2,968,110</td>\n",
       "      <td>197,874</td>\n",
       "      <td>12,637,141,559</td>\n",
       "      <td>842,476,103</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>_hws_2d</td>\n",
       "      <td>heat_or_wildfire_or_smoke_pollution_2D</td>\n",
       "      <td>Total days of heat or wildfire or smoke $PM_{2...</td>\n",
       "      <td>12,334,458</td>\n",
       "      <td>822,297</td>\n",
       "      <td>51,553,517,009</td>\n",
       "      <td>3,436,901,133</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>ws_2d</td>\n",
       "      <td>wildfire_smoke_pollution_non_zero_2D</td>\n",
       "      <td>Total days of wildfire &amp; smoke $PM_{2.5}$ (2D)</td>\n",
       "      <td>84,732</td>\n",
       "      <td>5,648</td>\n",
       "      <td>274,845,401</td>\n",
       "      <td>18,323,026</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>hs_2d</td>\n",
       "      <td>heat_smoke_pollution_non_zero_2D</td>\n",
       "      <td>Total days of heat and non-zero smoke $PM_{2.5...</td>\n",
       "      <td>1,108,988</td>\n",
       "      <td>73,932</td>\n",
       "      <td>4,683,715,553</td>\n",
       "      <td>312,247,703</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>hws_2d</td>\n",
       "      <td>heat_wildfire_smoke_pollution_non_zero_2D</td>\n",
       "      <td>Total days of heat, wildfire and non-zero smok...</td>\n",
       "      <td>5,482</td>\n",
       "      <td>365</td>\n",
       "      <td>18,892,293</td>\n",
       "      <td>1,259,486</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   value                                      title  \\\n",
       "0                  wfday                                   wildfire   \n",
       "1                heatday                                       heat   \n",
       "2      smoke_pm_non_zero                          smoke_pm_non_zero   \n",
       "3       smoke_pm_gt_five                           smoke_pm_gt_five   \n",
       "4                    hws     heat_wildfire_smoke_pollution_non_zero   \n",
       "5                     hs              heat_smoke_pollution_non_zero   \n",
       "6                     hw                              heat_wildfire   \n",
       "7                     ws          wildfire_smoke_pollution_non_zero   \n",
       "8                   _hws        heat_or_wildfire_or_smoke_pollution   \n",
       "9                    hs5             heat_smoke_pollution_over_five   \n",
       "10                  hws5  heat_wildfire & smoke_pollution_over_five   \n",
       "11                   ws5         wildfire_smoke_pollution_over_five   \n",
       "12              wfday_2d                                wildfire_2D   \n",
       "13  smoke_pm_non_zero_2d                       smoke_pm_non_zero_2D   \n",
       "14            heatday_2d                                    heat_2D   \n",
       "15               _hws_2d     heat_or_wildfire_or_smoke_pollution_2D   \n",
       "16                 ws_2d       wildfire_smoke_pollution_non_zero_2D   \n",
       "17                 hs_2d           heat_smoke_pollution_non_zero_2D   \n",
       "18                hws_2d  heat_wildfire_smoke_pollution_non_zero_2D   \n",
       "\n",
       "                                            title_map total_exposure_days  \\\n",
       "0                              Total days of wildfire             115,632   \n",
       "1                                  Total days of heat           2,005,773   \n",
       "2                      Total days of smoke $PM_{2.5}$           7,223,911   \n",
       "3      Total days of wildfire smoke (over >5μg/$m^3$)           2,419,380   \n",
       "4   Total days of heat, wildfire and smoke $PM_{2....               2,313   \n",
       "5   Total days of heat and smoke $PM_{2.5}$ concur...             573,221   \n",
       "6         Total days of heat and wildfire concurrence               3,133   \n",
       "7           Total days of wildfire & smoke $PM_{2.5}$              43,692   \n",
       "8   Total days of heat or wildfire or smoke $PM_{2...           8,727,583   \n",
       "9   Total days of heat and smoke $PM_{2.5}$ (over ...             219,943   \n",
       "10  Total days of heat, wildfire and smoke $PM_{2....               1,320   \n",
       "11  Total days of wildfire and smoke $PM_{2.5}$ (o...              19,280   \n",
       "12                        Total days of wildfire (2D)             197,017   \n",
       "13     Total days of smoke $PM_{2.5}$ (non zero) (2D)          10,364,584   \n",
       "14                            Total days of heat (2D)           2,968,110   \n",
       "15  Total days of heat or wildfire or smoke $PM_{2...          12,334,458   \n",
       "16     Total days of wildfire & smoke $PM_{2.5}$ (2D)              84,732   \n",
       "17  Total days of heat and non-zero smoke $PM_{2.5...           1,108,988   \n",
       "18  Total days of heat, wildfire and non-zero smok...               5,482   \n",
       "\n",
       "   total_exposure_days_per_year total_exposure_person_days  \\\n",
       "0                         7,708                384,251,376   \n",
       "1                       133,718              8,537,373,785   \n",
       "2                       481,594             30,063,223,402   \n",
       "3                       161,292             10,078,231,179   \n",
       "4                           154                  7,744,153   \n",
       "5                        38,214              2,414,815,138   \n",
       "6                           208                 10,579,329   \n",
       "7                         2,912                136,525,088   \n",
       "8                       581,838             36,430,673,161   \n",
       "9                        14,662                925,211,619   \n",
       "10                           88                  4,341,827   \n",
       "11                        1,285                 58,618,684   \n",
       "12                       13,134                666,341,221   \n",
       "13                      690,972             43,213,912,313   \n",
       "14                      197,874             12,637,141,559   \n",
       "15                      822,297             51,553,517,009   \n",
       "16                        5,648                274,845,401   \n",
       "17                       73,932              4,683,715,553   \n",
       "18                          365                 18,892,293   \n",
       "\n",
       "   exposure_person_day_per_year  \n",
       "0                    25,616,758  \n",
       "1                   569,158,252  \n",
       "2                 2,004,214,893  \n",
       "3                   671,882,078  \n",
       "4                       516,276  \n",
       "5                   160,987,675  \n",
       "6                       705,288  \n",
       "7                     9,101,672  \n",
       "8                 2,428,711,544  \n",
       "9                    61,680,774  \n",
       "10                      289,455  \n",
       "11                    3,907,912  \n",
       "12                   44,422,748  \n",
       "13                2,880,927,487  \n",
       "14                  842,476,103  \n",
       "15                3,436,901,133  \n",
       "16                   18,323,026  \n",
       "17                  312,247,703  \n",
       "18                    1,259,486  "
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "merged_df = df_ecy.merge(df_epy, on=[\"value\"])\n",
    "merged_df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "15e214a0",
   "metadata": {},
   "source": [
    "## Merge tables and add full exposure name"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "0a2bd17e",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'merged_df' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "Cell \u001b[0;32mIn[21], line 8\u001b[0m\n\u001b[1;32m      5\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m key \u001b[38;5;129;01min\u001b[39;00m hsptdict\u001b[38;5;241m.\u001b[39mkeys():\n\u001b[1;32m      6\u001b[0m     temp_dict[key] \u001b[38;5;241m=\u001b[39m hsptdict[key][\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtitle_map\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[0;32m----> 8\u001b[0m merged_df[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mvalue_full\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[43mmerged_df\u001b[49m[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mvalue\u001b[39m\u001b[38;5;124m'\u001b[39m]\u001b[38;5;241m.\u001b[39mreplace(temp_dict)\n",
      "\u001b[0;31mNameError\u001b[0m: name 'merged_df' is not defined"
     ]
    }
   ],
   "source": [
    "temp_dict = {}\n",
    "hsptdict = plotting.get_hotspopt_dict()\n",
    "\n",
    "# get full name of the exposure\n",
    "for key in hsptdict.keys():\n",
    "    temp_dict[key] = hsptdict[key]['title_map']\n",
    "\n",
    "merged_df['value_full'] = merged_df['value'].replace(temp_dict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "26c0d9fa",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "merged_df = merged_df[[\"value_full\", \"avg_census\", \"exposure_person_day_per_year\", \"exposure_person_day_per_year_per_ct\"]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "207d99eb-cf27-442c-a601-f6deb5a46ef3",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "| value_full                                                                      |   avg_census |   exposure_person_day_per_year |   exposure_person_day_per_year_per_ct |\n",
      "|:--------------------------------------------------------------------------------|-------------:|-------------------------------:|--------------------------------------:|\n",
      "| Total days of wildfire                                                          |         0.43 |                         115632 |                                  6.39 |\n",
      "| Total days of heat                                                              |         7.39 |                        2005979 |                                110.78 |\n",
      "| Total days of smoke $PM_{2.5}$                                                  |        26.6  |                        7224168 |                                398.95 |\n",
      "| Total days of smoke $PM_{2.5}$ (over >5μg/$m^3$)                                |         8.91 |                        2419449 |                                133.61 |\n",
      "| Total days of heat and wildfire concurrence                                     |         0.01 |                           3133 |                                  0.17 |\n",
      "| Total days of heat or wildfire or smoke $PM_{2.5}$                              |        32.13 |                        8728005 |                                482    |\n",
      "| Total days of heat and smoke $PM_{2.5}$ concurrence                             |         2.11 |                         573262 |                                 31.66 |\n",
      "| Total days of heat, wildfire and smoke $PM_{2.5}$ concurrence                   |         0.01 |                           2313 |                                  0.13 |\n",
      "| Total days of wildfire & smoke $PM_{2.5}$                                       |         0.16 |                          43692 |                                  2.41 |\n",
      "| Total days of heat and smoke $PM_{2.5}$ (over >5μg/$m^3$) concurrence           |         0.81 |                         219955 |                                 12.15 |\n",
      "| Total days of heat, wildfire and smoke $PM_{2.5}$ (over >5μg/$m^3$) concurrence |         0    |                           1320 |                                  0.07 |\n",
      "| Total days of wildfire and smoke $PM_{2.5}$ (over >5μg/$m^3$) concurrence       |         0.07 |                          19280 |                                  1.06 |\n",
      "| Total days of heat (2D)                                                         |        10.93 |                        2968398 |                                163.93 |\n",
      "| Total days of smoke $PM_{2.5}$ (non zero) (2D)                                  |        38.16 |                       10364963 |                                572.4  |\n",
      "| Total days of wildfire (2D)                                                     |         0.73 |                         197017 |                                 10.88 |\n",
      "| Total days of heat or wildfire or smoke $PM_{2.5}$ (2D)                         |        45.41 |                       12335048 |                                681.19 |\n",
      "| Total days of heat and non-zero smoke $PM_{2.5}$ concurrence (2D)               |         4.08 |                        1109065 |                                 61.25 |\n",
      "| Total days of heat, wildfire and non-zero smoke $PM_{2.5}$ concurrence (2D)     |         0.02 |                           5482 |                                  0.3  |\n",
      "| Total days of wildfire & smoke $PM_{2.5}$ (2D)                                  |         0.31 |                          84732 |                                  4.68 |\n"
     ]
    }
   ],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "0176e579",
   "metadata": {},
   "source": [
    "| value_full                                                                      |   avg_census |   exposure_person_day_per_year |   exposure_person_day_per_year_per_ct |\n",
    "|:--------------------------------------------------------------------------------|-------------:|-------------------------------:|--------------------------------------:|\n",
    "| Total days of wildfire                                                          |         0.43 |                         115632 |                                  6.39 |\n",
    "| Total days of heat                                                              |         7.39 |                        2005979 |                                110.78 |\n",
    "| Total days of smoke $PM_{2.5}$                                                  |        26.6  |                        7224168 |                                398.95 |\n",
    "| Total days of smoke $PM_{2.5}$ (over >5μg/$m^3$)                                |         8.91 |                        2419449 |                                133.61 |\n",
    "| Total days of heat and wildfire concurrence                                     |         0.01 |                           3133 |                                  0.17 |\n",
    "| Total days of heat or wildfire or smoke $PM_{2.5}$                              |        32.13 |                        8728005 |                                482    |\n",
    "| Total days of heat and smoke $PM_{2.5}$ concurrence                             |         2.11 |                         573262 |                                 31.66 |\n",
    "| Total days of heat, wildfire and smoke $PM_{2.5}$ concurrence                   |         0.01 |                           2313 |                                  0.13 |\n",
    "| Total days of wildfire & smoke $PM_{2.5}$                                       |         0.16 |                          43692 |                                  2.41 |\n",
    "| Total days of heat and smoke $PM_{2.5}$ (over >5μg/$m^3$) concurrence           |         0.81 |                         219955 |                                 12.15 |\n",
    "| Total days of heat, wildfire and smoke $PM_{2.5}$ (over >5μg/$m^3$) concurrence |         0    |                           1320 |                                  0.07 |\n",
    "| Total days of wildfire and smoke $PM_{2.5}$ (over >5μg/$m^3$) concurrence       |         0.07 |                          19280 |                                  1.06 |\n",
    "| Total days of heat (2D)                                                         |        10.93 |                        2968398 |                                163.93 |\n",
    "| Total days of smoke $PM_{2.5}$ (non zero) (2D)                                  |        38.16 |                       10364963 |                                572.4  |\n",
    "| Total days of wildfire (2D)                                                     |         0.73 |                         197017 |                                 10.88 |\n",
    "| Total days of heat or wildfire or smoke $PM_{2.5}$ (2D)                         |        45.41 |                       12335048 |                                681.19 |\n",
    "| Total days of heat and non-zero smoke $PM_{2.5}$ concurrence (2D)               |         4.08 |                        1109065 |                                 61.25 |\n",
    "| Total days of heat, wildfire and non-zero smoke $PM_{2.5}$ concurrence (2D)     |         0.02 |                           5482 |                                  0.3  |\n",
    "| Total days of wildfire & smoke $PM_{2.5}$ (2D)                                  |         0.31 |                          84732 |                                  4.68 |"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4c83fdac",
   "metadata": {},
   "source": [
    "## State Stats"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "f52f082d",
   "metadata": {},
   "outputs": [],
   "source": [
    "df = gpd.read_file(\"outputs/d2-events-2d-230929_SVI_shapefile.geojson\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "40a34871",
   "metadata": {},
   "outputs": [],
   "source": [
    "mhspts = ['heatday','wfday',\n",
    " 'smoke_pm_non_zero',\n",
    " 'hw','hs','ws','hws',\n",
    " ]\n",
    "\n",
    "N_years = 15"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bb3c4c4a",
   "metadata": {},
   "source": [
    "# Table 2 - Total exposure tract-days per state per year"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "id": "b10d8ca2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ST_ABBR</th>\n",
       "      <th>heatday</th>\n",
       "      <th>wfday</th>\n",
       "      <th>smoke_pm_non_zero</th>\n",
       "      <th>hw</th>\n",
       "      <th>hs</th>\n",
       "      <th>ws</th>\n",
       "      <th>hws</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>AZ</td>\n",
       "      <td>15832</td>\n",
       "      <td>819</td>\n",
       "      <td>25633</td>\n",
       "      <td>39</td>\n",
       "      <td>3532</td>\n",
       "      <td>247</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>CA</td>\n",
       "      <td>67866</td>\n",
       "      <td>2334</td>\n",
       "      <td>232190</td>\n",
       "      <td>48</td>\n",
       "      <td>16677</td>\n",
       "      <td>826</td>\n",
       "      <td>35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>CO</td>\n",
       "      <td>11950</td>\n",
       "      <td>337</td>\n",
       "      <td>43976</td>\n",
       "      <td>7</td>\n",
       "      <td>4413</td>\n",
       "      <td>100</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>ID</td>\n",
       "      <td>2826</td>\n",
       "      <td>892</td>\n",
       "      <td>20471</td>\n",
       "      <td>16</td>\n",
       "      <td>1391</td>\n",
       "      <td>413</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>MT</td>\n",
       "      <td>1582</td>\n",
       "      <td>622</td>\n",
       "      <td>15988</td>\n",
       "      <td>14</td>\n",
       "      <td>942</td>\n",
       "      <td>302</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>NM</td>\n",
       "      <td>6161</td>\n",
       "      <td>363</td>\n",
       "      <td>13701</td>\n",
       "      <td>19</td>\n",
       "      <td>1607</td>\n",
       "      <td>116</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>NV</td>\n",
       "      <td>6427</td>\n",
       "      <td>134</td>\n",
       "      <td>16262</td>\n",
       "      <td>11</td>\n",
       "      <td>1728</td>\n",
       "      <td>57</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>OR</td>\n",
       "      <td>8153</td>\n",
       "      <td>1068</td>\n",
       "      <td>36194</td>\n",
       "      <td>29</td>\n",
       "      <td>3002</td>\n",
       "      <td>418</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>TX</td>\n",
       "      <td>14</td>\n",
       "      <td>0</td>\n",
       "      <td>17</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>UT</td>\n",
       "      <td>5325</td>\n",
       "      <td>257</td>\n",
       "      <td>18440</td>\n",
       "      <td>8</td>\n",
       "      <td>1919</td>\n",
       "      <td>98</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>WA</td>\n",
       "      <td>6755</td>\n",
       "      <td>694</td>\n",
       "      <td>52120</td>\n",
       "      <td>13</td>\n",
       "      <td>2583</td>\n",
       "      <td>249</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>WY</td>\n",
       "      <td>836</td>\n",
       "      <td>189</td>\n",
       "      <td>6589</td>\n",
       "      <td>6</td>\n",
       "      <td>420</td>\n",
       "      <td>87</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   ST_ABBR  heatday  wfday  smoke_pm_non_zero  hw     hs   ws  hws\n",
       "0       AZ    15832    819              25633  39   3532  247   25\n",
       "1       CA    67866   2334             232190  48  16677  826   35\n",
       "2       CO    11950    337              43976   7   4413  100    4\n",
       "3       ID     2826    892              20471  16   1391  413   13\n",
       "4       MT     1582    622              15988  14    942  302   12\n",
       "5       NM     6161    363              13701  19   1607  116   13\n",
       "6       NV     6427    134              16262  11   1728   57    8\n",
       "7       OR     8153   1068              36194  29   3002  418   24\n",
       "8       TX       14      0                 17   0      3    0    0\n",
       "9       UT     5325    257              18440   8   1919   98    6\n",
       "10      WA     6755    694              52120  13   2583  249    8\n",
       "11      WY      836    189               6589   6    420   87    5"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Group by state and sum the exposure days\n",
    "total_exposure_per_state = df.groupby('ST_ABBR')[mhspts].sum().reset_index()\n",
    "# Print the result\n",
    "total_exposure_per_state[mhspts] = (total_exposure_per_state[mhspts]/N_years).round(0).astype(int)\n",
    "total_exposure_per_state"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "id": "04ee188e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ST_ABBR</th>\n",
       "      <th>hw</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>CA</td>\n",
       "      <td>48</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>AZ</td>\n",
       "      <td>39</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>OR</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>NM</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>ID</td>\n",
       "      <td>16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>MT</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>WA</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>NV</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>UT</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>CO</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>WY</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>TX</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   ST_ABBR  hw\n",
       "1       CA  48\n",
       "0       AZ  39\n",
       "7       OR  29\n",
       "5       NM  19\n",
       "3       ID  16\n",
       "4       MT  14\n",
       "10      WA  13\n",
       "6       NV  11\n",
       "9       UT   8\n",
       "2       CO   7\n",
       "11      WY   6\n",
       "8       TX   0"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "total_exposure_per_state.sort_values(by='hw', ascending=False)[[\"ST_ABBR\",\"hw\"]]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9327a4bf",
   "metadata": {},
   "source": [
    "## Total person-days per state\n",
    "\n",
    "Table S3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "id": "3f666de2",
   "metadata": {},
   "outputs": [],
   "source": [
    "for column in mhspts:\n",
    "    df[column] = df[column] * df['E_TOTPOP']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "338bc17c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>heatday</th>\n",
       "      <th>wfday</th>\n",
       "      <th>smoke_pm_non_zero</th>\n",
       "      <th>hw</th>\n",
       "      <th>hs</th>\n",
       "      <th>ws</th>\n",
       "      <th>hws</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ST_ABBR</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>AZ</th>\n",
       "      <td>64.10</td>\n",
       "      <td>2.14</td>\n",
       "      <td>101.60</td>\n",
       "      <td>0.11</td>\n",
       "      <td>14.15</td>\n",
       "      <td>0.75</td>\n",
       "      <td>0.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CA</th>\n",
       "      <td>297.62</td>\n",
       "      <td>8.67</td>\n",
       "      <td>993.58</td>\n",
       "      <td>0.19</td>\n",
       "      <td>72.54</td>\n",
       "      <td>2.69</td>\n",
       "      <td>0.14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CO</th>\n",
       "      <td>48.18</td>\n",
       "      <td>1.02</td>\n",
       "      <td>172.72</td>\n",
       "      <td>0.02</td>\n",
       "      <td>17.79</td>\n",
       "      <td>0.28</td>\n",
       "      <td>0.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ID</th>\n",
       "      <td>11.12</td>\n",
       "      <td>2.89</td>\n",
       "      <td>77.94</td>\n",
       "      <td>0.05</td>\n",
       "      <td>5.48</td>\n",
       "      <td>1.27</td>\n",
       "      <td>0.04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MT</th>\n",
       "      <td>5.52</td>\n",
       "      <td>1.63</td>\n",
       "      <td>51.84</td>\n",
       "      <td>0.04</td>\n",
       "      <td>3.22</td>\n",
       "      <td>0.73</td>\n",
       "      <td>0.03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NM</th>\n",
       "      <td>21.74</td>\n",
       "      <td>1.06</td>\n",
       "      <td>46.18</td>\n",
       "      <td>0.05</td>\n",
       "      <td>5.57</td>\n",
       "      <td>0.30</td>\n",
       "      <td>0.03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NV</th>\n",
       "      <td>25.56</td>\n",
       "      <td>0.38</td>\n",
       "      <td>60.48</td>\n",
       "      <td>0.03</td>\n",
       "      <td>6.69</td>\n",
       "      <td>0.16</td>\n",
       "      <td>0.03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>OR</th>\n",
       "      <td>35.38</td>\n",
       "      <td>3.52</td>\n",
       "      <td>149.38</td>\n",
       "      <td>0.10</td>\n",
       "      <td>12.86</td>\n",
       "      <td>1.33</td>\n",
       "      <td>0.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TX</th>\n",
       "      <td>0.02</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.03</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>UT</th>\n",
       "      <td>23.70</td>\n",
       "      <td>0.94</td>\n",
       "      <td>80.51</td>\n",
       "      <td>0.03</td>\n",
       "      <td>8.59</td>\n",
       "      <td>0.34</td>\n",
       "      <td>0.02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WA</th>\n",
       "      <td>28.35</td>\n",
       "      <td>2.37</td>\n",
       "      <td>218.17</td>\n",
       "      <td>0.04</td>\n",
       "      <td>10.67</td>\n",
       "      <td>0.77</td>\n",
       "      <td>0.03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WY</th>\n",
       "      <td>3.11</td>\n",
       "      <td>0.62</td>\n",
       "      <td>23.81</td>\n",
       "      <td>0.02</td>\n",
       "      <td>1.55</td>\n",
       "      <td>0.28</td>\n",
       "      <td>0.02</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         heatday  wfday  smoke_pm_non_zero    hw     hs    ws   hws\n",
       "ST_ABBR                                                            \n",
       "AZ         64.10   2.14             101.60  0.11  14.15  0.75  0.08\n",
       "CA        297.62   8.67             993.58  0.19  72.54  2.69  0.14\n",
       "CO         48.18   1.02             172.72  0.02  17.79  0.28  0.01\n",
       "ID         11.12   2.89              77.94  0.05   5.48  1.27  0.04\n",
       "MT          5.52   1.63              51.84  0.04   3.22  0.73  0.03\n",
       "NM         21.74   1.06              46.18  0.05   5.57  0.30  0.03\n",
       "NV         25.56   0.38              60.48  0.03   6.69  0.16  0.03\n",
       "OR         35.38   3.52             149.38  0.10  12.86  1.33  0.08\n",
       "TX          0.02   0.00               0.03  0.00   0.00  0.00  0.00\n",
       "UT         23.70   0.94              80.51  0.03   8.59  0.34  0.02\n",
       "WA         28.35   2.37             218.17  0.04  10.67  0.77  0.03\n",
       "WY          3.11   0.62              23.81  0.02   1.55  0.28  0.02"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Group by state and sum the person-days\n",
    "total_person_days_per_state = df.groupby('ST_ABBR')[mhspts].sum()\n",
    "total_person_days_per_state = (total_person_days_per_state/N_years).round(2)\n",
    "total_person_days_per_state = total_person_days_per_state.div(1000000).round(2)\n",
    "total_person_days_per_state"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "9e3448b5",
   "metadata": {},
   "outputs": [],
   "source": [
    "total_person_days_per_state = total_person_days_per_state.reset_index()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "id": "80b76d1e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ST_ABBR</th>\n",
       "      <th>hws</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>CA</td>\n",
       "      <td>0.14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>AZ</td>\n",
       "      <td>0.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>OR</td>\n",
       "      <td>0.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>ID</td>\n",
       "      <td>0.04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>MT</td>\n",
       "      <td>0.03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>NM</td>\n",
       "      <td>0.03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>NV</td>\n",
       "      <td>0.03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>WA</td>\n",
       "      <td>0.03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>UT</td>\n",
       "      <td>0.02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>WY</td>\n",
       "      <td>0.02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>CO</td>\n",
       "      <td>0.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>TX</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   ST_ABBR   hws\n",
       "1       CA  0.14\n",
       "0       AZ  0.08\n",
       "7       OR  0.08\n",
       "3       ID  0.04\n",
       "4       MT  0.03\n",
       "5       NM  0.03\n",
       "6       NV  0.03\n",
       "10      WA  0.03\n",
       "9       UT  0.02\n",
       "11      WY  0.02\n",
       "2       CO  0.01\n",
       "8       TX  0.00"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "total_person_days_per_state.sort_values(by='hws', ascending=False)[[\"ST_ABBR\",\"hws\"]]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0df8c1e0",
   "metadata": {},
   "source": [
    "## Mean person-days per census tract"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "7c3899c1-5989-4d53-97ea-939b3d183e7e",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "df = pd.read_parquet(\"outputs/d2-events-2d-230929.parquet\") \n",
    "gdf = gpd.read_file('data/WesternUSCensusTract/CensusTract2020_WesternUS.shp')\n",
    "gdf = gdf[['FIPS', 'POPULATION', 'STATE_ABBR']]\n",
    "# Groupby operation\n",
    "\n",
    "data = df[mhspts + ['GEOID']]\n",
    "# sum exposure days per GEOID (census tract (ct) number)\n",
    "data = data.groupby('GEOID').sum()\n",
    "df1 = gdf.merge(data, left_on=\"FIPS\", right_on=\"GEOID\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "id": "85fdd702",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "data = df1[mhspts + ['POPULATION', 'STATE_ABBR']]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "011696dc",
   "metadata": {},
   "source": [
    "Montana records 751 days per census tract of exposure to wildfire smoke but only 29 days per census tract of direct wildfire impact. Similarly, Colorado registers 445 days per census tract of wildfire smoke exposure while only experiencing 3 days per census tract of actual wildfires. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "id": "3d77d077",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>heatday</th>\n",
       "      <th>wfday</th>\n",
       "      <th>smoke_pm_non_zero</th>\n",
       "      <th>hw</th>\n",
       "      <th>hs</th>\n",
       "      <th>ws</th>\n",
       "      <th>hws</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ST_ABBR</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>AZ</th>\n",
       "      <td>544786.29</td>\n",
       "      <td>18226.81</td>\n",
       "      <td>863481.64</td>\n",
       "      <td>970.25</td>\n",
       "      <td>120281.45</td>\n",
       "      <td>6350.31</td>\n",
       "      <td>675.18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CA</th>\n",
       "      <td>490847.18</td>\n",
       "      <td>14307.03</td>\n",
       "      <td>1638674.00</td>\n",
       "      <td>318.55</td>\n",
       "      <td>119634.09</td>\n",
       "      <td>4439.78</td>\n",
       "      <td>230.02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CO</th>\n",
       "      <td>499476.47</td>\n",
       "      <td>10562.39</td>\n",
       "      <td>1790412.44</td>\n",
       "      <td>245.69</td>\n",
       "      <td>184408.39</td>\n",
       "      <td>2947.44</td>\n",
       "      <td>148.31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ID</th>\n",
       "      <td>365651.23</td>\n",
       "      <td>94994.02</td>\n",
       "      <td>2563768.54</td>\n",
       "      <td>1741.84</td>\n",
       "      <td>180136.18</td>\n",
       "      <td>41832.22</td>\n",
       "      <td>1448.89</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MT</th>\n",
       "      <td>259563.90</td>\n",
       "      <td>76424.94</td>\n",
       "      <td>2437748.14</td>\n",
       "      <td>1865.81</td>\n",
       "      <td>151417.62</td>\n",
       "      <td>34420.07</td>\n",
       "      <td>1501.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NM</th>\n",
       "      <td>532950.23</td>\n",
       "      <td>26025.83</td>\n",
       "      <td>1131873.03</td>\n",
       "      <td>1235.93</td>\n",
       "      <td>136584.78</td>\n",
       "      <td>7439.07</td>\n",
       "      <td>827.05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NV</th>\n",
       "      <td>492203.91</td>\n",
       "      <td>7294.65</td>\n",
       "      <td>1164551.76</td>\n",
       "      <td>650.19</td>\n",
       "      <td>128774.27</td>\n",
       "      <td>3174.85</td>\n",
       "      <td>487.51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>OR</th>\n",
       "      <td>535512.41</td>\n",
       "      <td>53322.32</td>\n",
       "      <td>2261054.48</td>\n",
       "      <td>1451.56</td>\n",
       "      <td>194615.26</td>\n",
       "      <td>20106.16</td>\n",
       "      <td>1177.74</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TX</th>\n",
       "      <td>370800.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>462600.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>73800.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>UT</th>\n",
       "      <td>496514.79</td>\n",
       "      <td>19695.03</td>\n",
       "      <td>1686681.32</td>\n",
       "      <td>686.68</td>\n",
       "      <td>179901.66</td>\n",
       "      <td>7200.88</td>\n",
       "      <td>470.84</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WA</th>\n",
       "      <td>240821.67</td>\n",
       "      <td>20088.46</td>\n",
       "      <td>1853119.01</td>\n",
       "      <td>365.85</td>\n",
       "      <td>90665.66</td>\n",
       "      <td>6543.85</td>\n",
       "      <td>233.17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>WY</th>\n",
       "      <td>291297.30</td>\n",
       "      <td>57817.98</td>\n",
       "      <td>2232278.32</td>\n",
       "      <td>1836.53</td>\n",
       "      <td>145632.94</td>\n",
       "      <td>26161.52</td>\n",
       "      <td>1490.14</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           heatday     wfday  smoke_pm_non_zero       hw         hs        ws  \\\n",
       "ST_ABBR                                                                         \n",
       "AZ       544786.29  18226.81          863481.64   970.25  120281.45   6350.31   \n",
       "CA       490847.18  14307.03         1638674.00   318.55  119634.09   4439.78   \n",
       "CO       499476.47  10562.39         1790412.44   245.69  184408.39   2947.44   \n",
       "ID       365651.23  94994.02         2563768.54  1741.84  180136.18  41832.22   \n",
       "MT       259563.90  76424.94         2437748.14  1865.81  151417.62  34420.07   \n",
       "NM       532950.23  26025.83         1131873.03  1235.93  136584.78   7439.07   \n",
       "NV       492203.91   7294.65         1164551.76   650.19  128774.27   3174.85   \n",
       "OR       535512.41  53322.32         2261054.48  1451.56  194615.26  20106.16   \n",
       "TX       370800.00      0.00          462600.00     0.00   73800.00      0.00   \n",
       "UT       496514.79  19695.03         1686681.32   686.68  179901.66   7200.88   \n",
       "WA       240821.67  20088.46         1853119.01   365.85   90665.66   6543.85   \n",
       "WY       291297.30  57817.98         2232278.32  1836.53  145632.94  26161.52   \n",
       "\n",
       "             hws  \n",
       "ST_ABBR           \n",
       "AZ        675.18  \n",
       "CA        230.02  \n",
       "CO        148.31  \n",
       "ID       1448.89  \n",
       "MT       1501.99  \n",
       "NM        827.05  \n",
       "NV        487.51  \n",
       "OR       1177.74  \n",
       "TX          0.00  \n",
       "UT        470.84  \n",
       "WA        233.17  \n",
       "WY       1490.14  "
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby('ST_ABBR')[mhspts].mean().round(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "id": "dfa8e84e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ST_ABBR</th>\n",
       "      <th>heatday</th>\n",
       "      <th>wfday</th>\n",
       "      <th>smoke_pm_non_zero</th>\n",
       "      <th>hw</th>\n",
       "      <th>hs</th>\n",
       "      <th>ws</th>\n",
       "      <th>hws</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>AZ</td>\n",
       "      <td>169389</td>\n",
       "      <td>3422</td>\n",
       "      <td>694666</td>\n",
       "      <td>0</td>\n",
       "      <td>46197</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>AZ</td>\n",
       "      <td>754722</td>\n",
       "      <td>49221</td>\n",
       "      <td>2389953</td>\n",
       "      <td>0</td>\n",
       "      <td>229698</td>\n",
       "      <td>21876</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>AZ</td>\n",
       "      <td>197310</td>\n",
       "      <td>282811</td>\n",
       "      <td>2703147</td>\n",
       "      <td>0</td>\n",
       "      <td>46039</td>\n",
       "      <td>98655</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>AZ</td>\n",
       "      <td>834705</td>\n",
       "      <td>80379</td>\n",
       "      <td>2603043</td>\n",
       "      <td>0</td>\n",
       "      <td>253503</td>\n",
       "      <td>49464</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>AZ</td>\n",
       "      <td>762720</td>\n",
       "      <td>0</td>\n",
       "      <td>1570840</td>\n",
       "      <td>0</td>\n",
       "      <td>217920</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18102</th>\n",
       "      <td>WY</td>\n",
       "      <td>237424</td>\n",
       "      <td>362384</td>\n",
       "      <td>2696012</td>\n",
       "      <td>6248</td>\n",
       "      <td>149952</td>\n",
       "      <td>99968</td>\n",
       "      <td>3124</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18103</th>\n",
       "      <td>WY</td>\n",
       "      <td>225331</td>\n",
       "      <td>0</td>\n",
       "      <td>1338600</td>\n",
       "      <td>0</td>\n",
       "      <td>116012</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18104</th>\n",
       "      <td>WY</td>\n",
       "      <td>252644</td>\n",
       "      <td>18046</td>\n",
       "      <td>1613828</td>\n",
       "      <td>0</td>\n",
       "      <td>136634</td>\n",
       "      <td>7734</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18105</th>\n",
       "      <td>WY</td>\n",
       "      <td>324324</td>\n",
       "      <td>111384</td>\n",
       "      <td>2807532</td>\n",
       "      <td>22932</td>\n",
       "      <td>193284</td>\n",
       "      <td>52416</td>\n",
       "      <td>22932</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18106</th>\n",
       "      <td>WY</td>\n",
       "      <td>304278</td>\n",
       "      <td>14664</td>\n",
       "      <td>2485548</td>\n",
       "      <td>10998</td>\n",
       "      <td>168636</td>\n",
       "      <td>10998</td>\n",
       "      <td>10998</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>18107 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      ST_ABBR  heatday   wfday  smoke_pm_non_zero     hw      hs     ws    hws\n",
       "0          AZ   169389    3422             694666      0   46197      0      0\n",
       "1          AZ   754722   49221            2389953      0  229698  21876      0\n",
       "2          AZ   197310  282811            2703147      0   46039  98655      0\n",
       "3          AZ   834705   80379            2603043      0  253503  49464      0\n",
       "4          AZ   762720       0            1570840      0  217920      0      0\n",
       "...       ...      ...     ...                ...    ...     ...    ...    ...\n",
       "18102      WY   237424  362384            2696012   6248  149952  99968   3124\n",
       "18103      WY   225331       0            1338600      0  116012      0      0\n",
       "18104      WY   252644   18046            1613828      0  136634   7734      0\n",
       "18105      WY   324324  111384            2807532  22932  193284  52416  22932\n",
       "18106      WY   304278   14664            2485548  10998  168636  10998  10998\n",
       "\n",
       "[18107 rows x 8 columns]"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[[\"ST_ABBR\"] + mhspts]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 184,
   "id": "dd6e62a3-dde6-41cd-8419-1dc7bb7307ea",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/lc/q1l1y0k176b0h_m5yz0s_r5w0000gn/T/ipykernel_48083/1027940323.py:1: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  data[mhspts] = data[mhspts].multiply(data['POPULATION'], axis=0)\n"
     ]
    }
   ],
   "source": [
    "data[mhspts] = data[mhspts].multiply(data['POPULATION'], axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 186,
   "id": "ac4df71e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>STATE_ABBR</th>\n",
       "      <th>wfday</th>\n",
       "      <th>heatday</th>\n",
       "      <th>smoke_pm_non_zero</th>\n",
       "      <th>hw</th>\n",
       "      <th>hs</th>\n",
       "      <th>hws</th>\n",
       "      <th>ws</th>\n",
       "      <th>POPULATION</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>AZ</td>\n",
       "      <td>31.50</td>\n",
       "      <td>958.13</td>\n",
       "      <td>1515.75</td>\n",
       "      <td>1.67</td>\n",
       "      <td>210.96</td>\n",
       "      <td>1.18</td>\n",
       "      <td>11.48</td>\n",
       "      <td>7.15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>CA</td>\n",
       "      <td>131.93</td>\n",
       "      <td>4472.64</td>\n",
       "      <td>15021.35</td>\n",
       "      <td>2.94</td>\n",
       "      <td>1092.17</td>\n",
       "      <td>2.12</td>\n",
       "      <td>41.16</td>\n",
       "      <td>39.51</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>CO</td>\n",
       "      <td>15.47</td>\n",
       "      <td>733.47</td>\n",
       "      <td>2633.59</td>\n",
       "      <td>0.37</td>\n",
       "      <td>271.10</td>\n",
       "      <td>0.22</td>\n",
       "      <td>4.33</td>\n",
       "      <td>5.77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>ID</td>\n",
       "      <td>44.74</td>\n",
       "      <td>174.82</td>\n",
       "      <td>1223.32</td>\n",
       "      <td>0.81</td>\n",
       "      <td>86.10</td>\n",
       "      <td>0.67</td>\n",
       "      <td>19.62</td>\n",
       "      <td>1.84</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>MT</td>\n",
       "      <td>25.33</td>\n",
       "      <td>84.30</td>\n",
       "      <td>793.97</td>\n",
       "      <td>0.60</td>\n",
       "      <td>49.15</td>\n",
       "      <td>0.49</td>\n",
       "      <td>11.49</td>\n",
       "      <td>1.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>NM</td>\n",
       "      <td>16.36</td>\n",
       "      <td>329.74</td>\n",
       "      <td>700.19</td>\n",
       "      <td>0.80</td>\n",
       "      <td>84.47</td>\n",
       "      <td>0.53</td>\n",
       "      <td>4.75</td>\n",
       "      <td>2.12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>NV</td>\n",
       "      <td>5.74</td>\n",
       "      <td>391.77</td>\n",
       "      <td>932.93</td>\n",
       "      <td>0.51</td>\n",
       "      <td>102.82</td>\n",
       "      <td>0.38</td>\n",
       "      <td>2.49</td>\n",
       "      <td>3.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>OR</td>\n",
       "      <td>53.60</td>\n",
       "      <td>537.74</td>\n",
       "      <td>2275.27</td>\n",
       "      <td>1.45</td>\n",
       "      <td>195.66</td>\n",
       "      <td>1.17</td>\n",
       "      <td>20.19</td>\n",
       "      <td>4.22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>UT</td>\n",
       "      <td>14.42</td>\n",
       "      <td>370.16</td>\n",
       "      <td>1253.10</td>\n",
       "      <td>0.49</td>\n",
       "      <td>134.14</td>\n",
       "      <td>0.34</td>\n",
       "      <td>5.26</td>\n",
       "      <td>3.27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>WA</td>\n",
       "      <td>36.28</td>\n",
       "      <td>438.10</td>\n",
       "      <td>3359.58</td>\n",
       "      <td>0.65</td>\n",
       "      <td>165.01</td>\n",
       "      <td>0.41</td>\n",
       "      <td>11.83</td>\n",
       "      <td>7.68</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>WY</td>\n",
       "      <td>8.88</td>\n",
       "      <td>46.51</td>\n",
       "      <td>354.15</td>\n",
       "      <td>0.29</td>\n",
       "      <td>23.24</td>\n",
       "      <td>0.23</td>\n",
       "      <td>3.92</td>\n",
       "      <td>0.58</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   STATE_ABBR   wfday  heatday  smoke_pm_non_zero    hw       hs   hws     ws  \\\n",
       "0          AZ   31.50   958.13            1515.75  1.67   210.96  1.18  11.48   \n",
       "1          CA  131.93  4472.64           15021.35  2.94  1092.17  2.12  41.16   \n",
       "2          CO   15.47   733.47            2633.59  0.37   271.10  0.22   4.33   \n",
       "3          ID   44.74   174.82            1223.32  0.81    86.10  0.67  19.62   \n",
       "4          MT   25.33    84.30             793.97  0.60    49.15  0.49  11.49   \n",
       "5          NM   16.36   329.74             700.19  0.80    84.47  0.53   4.75   \n",
       "6          NV    5.74   391.77             932.93  0.51   102.82  0.38   2.49   \n",
       "7          OR   53.60   537.74            2275.27  1.45   195.66  1.17  20.19   \n",
       "8          UT   14.42   370.16            1253.10  0.49   134.14  0.34   5.26   \n",
       "9          WA   36.28   438.10            3359.58  0.65   165.01  0.41  11.83   \n",
       "10         WY    8.88    46.51             354.15  0.29    23.24  0.23   3.92   \n",
       "\n",
       "    POPULATION  \n",
       "0         7.15  \n",
       "1        39.51  \n",
       "2         5.77  \n",
       "3         1.84  \n",
       "4         1.08  \n",
       "5         2.12  \n",
       "6         3.10  \n",
       "7         4.22  \n",
       "8         3.27  \n",
       "9         7.68  \n",
       "10        0.58  "
      ]
     },
     "execution_count": 186,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "temp = data[data.STATE_ABBR != \"TX\"].groupby('STATE_ABBR').sum().divide(1000000, axis=0).round(2).reset_index()\n",
    "temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 196,
   "id": "3487bd32",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>STATE_ABBR</th>\n",
       "      <th>smoke_pm_non_zero</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>CA</td>\n",
       "      <td>15021.35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>WA</td>\n",
       "      <td>3359.58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>CO</td>\n",
       "      <td>2633.59</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>OR</td>\n",
       "      <td>2275.27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>AZ</td>\n",
       "      <td>1515.75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>UT</td>\n",
       "      <td>1253.10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>ID</td>\n",
       "      <td>1223.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>NV</td>\n",
       "      <td>932.93</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>MT</td>\n",
       "      <td>793.97</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  STATE_ABBR  smoke_pm_non_zero\n",
       "1         CA           15021.35\n",
       "9         WA            3359.58\n",
       "2         CO            2633.59\n",
       "7         OR            2275.27\n",
       "0         AZ            1515.75\n",
       "8         UT            1253.10\n",
       "3         ID            1223.32\n",
       "6         NV             932.93\n",
       "4         MT             793.97"
      ]
     },
     "execution_count": 196,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = \"smoke_pm_non_zero\"\n",
    "temp.sort_values(x, ascending=False)[:9][[\"STATE_ABBR\", x]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 164,
   "id": "8d3b9eb6-0473-46c0-aab1-12e70bb4f2a9",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/lc/q1l1y0k176b0h_m5yz0s_r5w0000gn/T/ipykernel_48083/2412843747.py:1: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  data[mhspts] = data[mhspts].divide(1000, axis=0)\n"
     ]
    }
   ],
   "source": [
    "data[mhspts] = data[mhspts].divide(1000, axis=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d564db60",
   "metadata": {},
   "source": [
    "# Summer month plots"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "id": "80b67749",
   "metadata": {},
   "outputs": [],
   "source": [
    "df2 = gpd.read_file(\"outputs/d2-events-2d-230929_SVI_shapefile.geojson\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "id": "4627db61",
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.read_parquet(\"outputs/d2-events-2d5-230929.parquet\") "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "id": "648880f6",
   "metadata": {},
   "outputs": [],
   "source": [
    "df2 = df2[df2['ST_ABBR'] != 'TX']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "id": "8c72ab2d",
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df[df.GEOID.isin(df2.FIPS)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "id": "bf0dc688",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "18106"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.GEOID.nunique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "id": "680821b4-cccb-4fa6-a303-4fec9111c789",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "temp = df.reset_index()\n",
    "temp[\"month\"] = temp[\"time\"].dt.month"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "id": "fce0b988-4162-4d10-ab86-786f30253b08",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "hspts = plotting.get_hotspot_list()\n",
    "\n",
    "temp = temp.groupby(\"month\")[hspts].sum()\n",
    "\n",
    "x_dict = plotting.get_core_dict2()\n",
    "# x_dict = {\"wfday\":\"Wildfire\",\"heatday\":\"Heat\",\"smoke_pm_non_zero\":\"Wildfire smoke\"}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "id": "9fa9b9b9",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Calculate the sum of each column\n",
    "column_sums = temp.sum()\n",
    "\n",
    "# Divide each column by its sum and multiply by 100\n",
    "df_normalized = temp.div(column_sums, axis='columns') * 100"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "id": "340c22c2-f597-4186-ab1e-272c9c72b9ad",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "import textwrap\n",
    "plt.rcParams[\"font.family\"] = 'sans-serif'\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "id": "67213dd6",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 300x200 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def plot_bar_chart(data, column_name):\n",
    "    \"\"\"Function to create and save a bar chart for a specific column.\"\"\"\n",
    "    if column_name==\"month\":\n",
    "        return\n",
    "    fig, ax = plt.subplots(figsize=(3, 2))\n",
    "\n",
    "    sns.barplot(x=data.index, y=data[column_name], ax=ax) #, color=\"#a1c9f4\")\n",
    "    #ax.bar(data.index, data[column_name])\n",
    "    #data[column_name].plot(kind='bar', ax=ax)  # Use ax=ax to place the plot in the correct subplot\n",
    "    # set y-axis to limit\n",
    "    ax.set_ylim(0, 43)\n",
    "    \n",
    "    wrapped_title = textwrap.fill(x_dict[column_name][\"title_map\"]+ ' days per month', 40)\n",
    "    #fig.suptitle(wrapped_title, fontsize=14, fontweight=\"bold\", y=0.95)\n",
    "    \n",
    "    plt.title(wrapped_title, fontsize=9)\n",
    "\n",
    "    plt.ylabel('Percentage of Tract Days', fontsize=8)\n",
    "    plt.xlabel('Month', fontsize=8)\n",
    "    plt.tight_layout()\n",
    "\n",
    "    # Uncomment this line if you want to save the figure\n",
    "    #plt.savefig(f\"figures/hist_{column_name}.png\", dpi=300)\n",
    "    plt.savefig(f'figures/pdf/fig3_{column_name}.pdf', format='pdf', dpi=300)\n",
    "    plt.show()\n",
    "\n",
    "# Loop through each column and create a bar chart\n",
    "# temp_copy = temp.copy()\n",
    "temp_copy = df_normalized.copy()\n",
    "for col in x_dict.keys():\n",
    "    plot_bar_chart(temp_copy, col)\n",
    "\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3487714c-ff27-4fcb-a6b7-408df405d4fe",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": ".venv",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
